The present invention relates generally to computer networking, and more specifically, to protocol selection for applications using the transmission control protocol/internet protocol (TCP/IP).
There is a large existing base of servers, applications, and clients that are coded to the TCP/IP sockets interface for communication. For these programs to exploit high speed interconnects such as remote direct memory access (RDMA), significant rewriting of their communication methods would be required. This is a major undertaking and may not even be practical in some cases (for example legacy applications whose source code or coding skill is lost). In addition to the implementation cost and long term cost of sustaining multiple application program interfaces (APIs) in each application, new and unique network administrative requirements must be addressed (e.g. configuration, enablement, high availability, security, network load balancing, and various TCP/IP related quality of services).
Sockets Direct Protocol (SDP) is an example of a sockets over RDMA protocol that may be used to bypass TCP/IP and provides an alternative protocol stack “underneath” the sockets layer that can exploit RDMA technology. This solution allows applications, which are coded to the widely adopted sockets standard, to run unmodified and the SDP stack under the sockets layer handles all the communication over the RDMA network, completely bypassing TCP/IP. However, businesses still rely on legacy firewalls, load balancers, IP filters, and other TCP/IP based technologies to manage and secure their networks. These technologies rely on the ability to manage TCP/IP setup flows to perform their function. Because SDP dispenses with these flows, these network elements would have to be reinvented for SDP. Additionally, many TCP/IP stacks are mature products with built-in security, quality of service, tracing, and auditing, etc. capabilities that either have no corresponding feature in SDP or a completely different approach to providing similar features.
Because of these limitations, SDP could be perceived as unsuitable for some multi-tier enterprise level business environments with complicated security, high availability and quality of service requirements. Shared memory communications over RDMA (SMC-R) is an example of a sockets over RDMA protocol that employs a hybrid communication model. SMC-R uses both TCP/IP and native RDMA services. It relies on traditional TCP/IP connection establishment protocols to establish a connection and then relies on RDMA technology to speed up the transfer of data associated with the connection. By exploiting normal TCP/IP connection establishment protocols SMC-R is able to retain the key benefits of the TCP/IP network infrastructure. Therefore, SMC-R protocol may be implemented for communications in such an environment.